러신 모델을 평가하는데 정확도, 정밀도(precision), 재현율(recall) ,F1-점수 등을 이용한다.
오차행렬(confusion matrix)오차 행렬은 학습 알로리즘의 성능을 행렬로 펼쳐 놓은 matrix를 말한다.
진짜 양성(True Positive, TP), 진짜 음성(True Negative, TN), 거짓 양성(False Positive, FP), 거짓 음성(False Negative, FN)의 개수를 적은 단순한 정방 행렬이다.
from sklearn.metrics import confusion_matrix
pipe_svc.fit(X_train, y_train)
y_pred=pipe_svc.predict(X_test)
confmat=confusion_matrix(y_true=y_test, y_pred=y_pred)
print(confmat)
import matplotlib.pyplot as plt
fig, ax=plt.subplots(figsize=(2.5, 2.5))
ax.matshow(confmat, cmap=plt.cm.Blues, alpha=0.3)
for i in range(confmat.shape[0]):
for j in range(confmat.shape[1]):
ax.text(x=j, y=i, s=confmat[i, j], va='center', ha='center')
plt.xlabel('Predicted label')
plt.ylabel('True label')
plt.tight_layout()
plt.show()
scikit-learn plot_confusion_matrix()
from sklearn.metrics import plot_confusion_matrix
plot_confusion_matrix(pipe_svc, X_test, y_test)
plt.show()
훈련 시킨 데이터를 전달해주면 바로 오차행렬을 그릴 수 있다.
plot_confusion_matrix(pipe_svc, X_test, y_test, normalize='all')
plt.show()
plot_confusion_matrix의 normalize 매개변수를 ‘all’로 설정하면, 전체 출력 값을 정규화한다.